package com.linzm.structuraltype.decorator05;

import com.linzm.structuraltype.decorator05.shape.Circle;
import com.linzm.structuraltype.decorator05.shape.Rectangle;
import com.linzm.structuraltype.decorator05.shape.Shape;

/**
 * @Author zimingl
 * @Date 2023/4/16 1:30
 * @Description: DecoratorPatternDemo
 */
public class DecoratorPatternDemo {
    public static void main(String[] args) {
        Shape circle = new Circle();
        Shape redCircle = new RedShapeDecorator(new Circle());
        Shape redRectangle = new RedShapeDecorator(new Rectangle());

        System.out.println("Circle with normal border");
        circle.draw();

        System.out.println("\nCircle of red border");
        redCircle.draw();

        System.out.println("\nRectangle of red border");
        redRectangle.draw();
    }
}
